home *** CD-ROM | disk | FTP | other *** search
- {$g+,n-,e-,d-,q-,r-,s-,t-,v-,x-}
- uses crt,dos;
-
- function diskettedrives:integer; assembler;
- asm
- xor ax,ax
- xor bx,bx
- xor cx,cx
- xor dx,dx
- int 011h
- cmp ax,00001h
- je @@exit2
- @@exit2:
- xor ax,ax
- @@exit:
- shl ax,8
- shl ax,14
- inc ax
- end;
-
- var
- buf:array [1..512]of byte;
- ch:char;
-
- function ready(drivespec:char):boolean; {A,B,etc}
- var
- result:word;
- drive,number,logical:word;
- begin
- ready:=true;
- drive:=ord(upcase(drivespec))-65;
- if(drive>diskettedrives)then exit;
- number:=1;
- logical:=1;
- asm
- push bp
- push ds
- xor ax,ax
- mov result,ax
- mov al,byte ptr drive
- mov cx,number
- mov dx,logical
- mov bx,seg buf
- mov ds,bx
- mov bx,offset buf
- int 25h
- pop bx
- pop ds
- pop bp
- jnb @@done
- mov result,ax
- @@done:
- end;
- ready:=(result=0);
- end;
-
- function dodummy(const d:char):boolean;
- var f:file;
- begin
- dodummy:=false;
- assign(f,d+':\dummy');
- {$i-} rewrite(f,1); {$i+}
- if(ioresult<>0)then
- begin
- exit;
- end;
- {$i-} close(f); {$i+}
- if(ioresult<>0)then exit;
- {$i-} erase(f); {$i+}
- if(ioresult<>0)then exit;
- dodummy:=true;
- end;
-
- begin
- repeat
- writeln('insert a unprotected disk in drive A: and press any key!');
- ch:=readkey;
- until(ready('a'))and(dodummy('a'));
- end.